package com.zprmb.udzt.view;
//
//import android.animation.Animator;
//import android.animation.ValueAnimator;
//import android.content.Context;
//import android.text.TextUtils;
//import android.view.MotionEvent;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.Button;
//import android.widget.FrameLayout;
//import android.widget.LinearLayout;
//import android.widget.RadioButton;
//import android.widget.RadioGroup;
//import android.widget.RelativeLayout;
//import android.widget.TextView;
//
//
//
//import java.util.List;
//
//import com.zprmb.udzt.R;
//
///**
// * @author leigang
// *
// * @description 全局通用窗口
// *
// * @time 2017-1-5 17:14:31
// *
// */
//public class AlertSmartDialog {
//
//    /**
//     * 全局上下文
//     *
//     */
//    private Context mContext;
//    /**
//     *  窗口布局文件
//     */
//    private View mView;
//    /**
//     *  添加的窗口主宿主View
//     *
//     */
//    private ViewGroup mViewGroup;
//
//    /**
//     *  触摸窗口外面是否退出窗口
//     *
//     */
//    private boolean isExitWindow = true;
//
//    /***
//     * 窗口是否正在退出
//     *
//     */
//    private boolean isExecuting = false;
//
//    /***
//     * 单选框选择位置
//     *
//     */
//    private int mPosition = -1;
//
//
//    private TextView mTvTitle;
//    private TextView mTvContent;
//    private Button mBtnDetermine;
//    private Button mBtnCancel;
//    private RadioGroup mRg;
//    private LinearLayout mLLRoot;
//    private View mCustomView;
//
//
//    public boolean isExitWindow() {
//        return isExitWindow;
//    }
//
//    public AlertSmartDialog(Context context, ViewGroup viewGroup) {
//        mContext = context;
//        mViewGroup = viewGroup;
//        create();
//    }
//
//    public AlertSmartDialog(Context context, View view, ViewGroup viewGroup) {
//        mContext = context;
//        mCustomView = view;
//        mViewGroup = viewGroup;
//        addCustomView();
//    }
//
//    private void addCustomView() {
//        mView = initCustomView();
//        mLLRoot  = (LinearLayout) mView.findViewById(R.id.mLLRoot);
//        ViewGroup.MarginLayoutParams layoutParams = null;
//        layoutParams
//                = new ViewGroup.MarginLayoutParams
//                (ViewGroup.MarginLayoutParams.MATCH_PARENT,
//                        ViewGroup.MarginLayoutParams.MATCH_PARENT);
//        mLLRoot.addView(mCustomView,layoutParams);
//    }
//
//    private View initCustomView(){
//        return View.inflate(mContext,R.layout.dialog_custom_view,null);
//    }
//
//    public AlertSmartDialog setTitle(String title) {
//        mTvTitle.setText(title);
//        return this;
//    }
//
//    public AlertSmartDialog setContent(String content) {
//        mTvContent.setVisibility(View.VISIBLE);
//        mTvContent.setText(content);
//        return this;
//    }
//
//    public AlertSmartDialog setConfirm(String confirm,
//                                   final IDialogOnclickListener listener) {
//        if (!TextUtils.isEmpty(confirm)) {
//            mBtnDetermine.setText(confirm);
//        }
//        mBtnDetermine.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                listener.onClickListener(AlertSmartDialog.this);
//            }
//        });
//        return this;
//    }
//
//    public AlertSmartDialog setSingleConfirm(String confirm,
//                                         final IDialogRadioListener listener) {
//        if (!TextUtils.isEmpty(confirm)) {
//            mBtnDetermine.setText(confirm);
//        }
//        mBtnDetermine.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                listener.setRadioListener(AlertSmartDialog.this,mPosition);
//            }
//        });
//        return this;
//    }
//
//    public AlertSmartDialog setSingleContent(List<String> mContentList) {
//        mTvContent.setVisibility(View.GONE);
//        mRg.setVisibility(View.VISIBLE);
//        for (int x = 0; x < mContentList.size(); x++) {
//            ViewGroup.LayoutParams layoutParams = new
//                    ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
//                    ViewGroup.LayoutParams.WRAP_CONTENT);
//            RadioButton radioButton = new RadioButton(mContext);
//            radioButton.setText(mContentList.get(x));
//            radioButton.setId(x);
//            if(x == 0){
//                radioButton.setChecked(true);
//                mPosition = x;
//            }
//            mRg.addView(radioButton, layoutParams);
//        }
//        mRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
//            @Override
//            public void onCheckedChanged(RadioGroup group, int checkedId) {
//                mPosition = checkedId;
//            }
//        });
//        return this;
//    }
//
//    public AlertSmartDialog setCancel(String cancel,
//                                  final IDialogOnclickListener listener) {
//        if (!TextUtils.isEmpty(cancel)) {
//            mBtnCancel.setText(cancel);
//        }
//        mBtnCancel.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                listener.onClickListener(AlertSmartDialog.this);
//            }
//        });
//        return this;
//    }
//
//    public AlertSmartDialog create() {
//        if (mView == null) {
//            mView = View.inflate(mContext, R.layout.dialog_common, null);
//        }
//        initView();
//        return this;
//    }
//
//    protected void initView() {
//        mTvTitle = (TextView) mView.findViewById(R.id.mTvTitle);
//        mTvContent = (TextView) mView.findViewById(R.id.mTvContent);
//        mBtnDetermine = (Button) mView.findViewById(R.id.mBtnDetermine);
//        mBtnCancel = (Button) mView.findViewById(R.id.mBtnCancel);
//        mLLRoot = (LinearLayout) mView.findViewById(R.id.mLLRoot);
//        mRg = (RadioGroup) mView.findViewById(R.id.mRg);
//        mTvContent.setVisibility(View.GONE);
//    }
//
//    public AlertSmartDialog setOnTouchCancel(boolean isCancel) {
//        isExitWindow = isCancel;
//        return this;
//    }
//
//    public AlertSmartDialog show() {
//        if (mView == null) {
//            return this;
//        }
//        addView();
//        setOnTouchListener();
//        return this;
//    }
//
//    private void setOnTouchListener() {
//
//        mView.setOnTouchListener(new View.OnTouchListener() {
//            @Override
//            public boolean onTouch(View v, MotionEvent event) {
//                int action = event.getAction();
//                int right = mLLRoot.getRight();
//                int left = mLLRoot.getLeft();
//                int bottom = mLLRoot.getBottom();
//                int top = mLLRoot.getTop();
//                if (action == MotionEvent.ACTION_DOWN) {
//                    float x = event.getX();
//                    float y = event.getY();
//                    if (x > left
//                            && x < right && y > top && y < bottom) {
//                        return true;
//                    }
//                    if (isExitWindow()) {
//                        if (!isExecuting) {
//                            dismiss();
//                        }
//                    }
//                }
//                return true;
//            }
//        });
//    }
//
//    private void addView() {
//        mView.setAlpha(0);
//        ViewGroup.MarginLayoutParams layoutParams = null;
//        layoutParams
//                = new ViewGroup.MarginLayoutParams
//                (ViewGroup.MarginLayoutParams.MATCH_PARENT,
//                        ViewGroup.MarginLayoutParams.MATCH_PARENT);
//        if (mViewGroup instanceof RelativeLayout) {
//            mViewGroup.addView(mView, layoutParams);
//            enterAnimation();
//            return;
//        }
//        FrameLayout frameLayout = (FrameLayout) mViewGroup.getParent();
//        frameLayout.addView(mView);
//        enterAnimation();
//    }
//
//    private void enterAnimation() {
//        if (mView == null) {
//            return;
//        }
//        ValueAnimator animator = ValueAnimator.ofFloat(0, 1);
//        animator.setDuration(300);
//        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                float curValue = (float) animation.getAnimatedValue();
//                mView.setAlpha(curValue);
//            }
//        });
//        animator.start();
//    }
//
//    private void exitAnimation() {
//        if (mView == null) {
//            return;
//        }
//        ValueAnimator animator = ValueAnimator.ofFloat(1, 0);
//        animator.setDuration(300);
//        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                float curValue = (float) animation.getAnimatedValue();
//                mView.setAlpha(curValue);
//            }
//        });
//
//        animator.addListener(new DefaultAnimatorListener() {
//            @Override
//            public void onAnimationEnd(Animator animation) {
//                if (isRelativeLayout()) {
//                    mViewGroup.removeView(mView);
//                } else {
//                    FrameLayout frameLayout = (FrameLayout) mViewGroup.getParent();
//                    frameLayout.removeView(mView);
//                }
//                mView = null;
//                mViewGroup = null;
//                mContext = null;
//                mCustomView = null;
//            }
//        });
//        animator.start();
//    }
//
//
//    public AlertSmartDialog setView(View view) {
//        if(mView != null){
//            mView = null;
//        }
//        mCustomView = view;
//        addCustomView();
//        return this;
//    }
//
//    public void dismiss() {
//        isExecuting = true;
//        if (mView == null) {
//            return;
//        }
//        exitAnimation();
//    }
//
//    private boolean isRelativeLayout() {
//        if (mViewGroup instanceof RelativeLayout) {
//            return true;
//        }
//        return false;
//    }
//
//}
